# 负责整个项目的配置信息

class Config:
    # 配置数据库和 SQLALchemy
    HOSTNAME = '127.0.0.1'
    PORT = '3306'
    DATABASE = 'shopping_mall'
    USERNAME = 'root'
    PASSWORD = 'root'
    DB_URI = f'mysql+pymysql://{USERNAME}:{PASSWORD}@{HOSTNAME}:{PORT}/{DATABASE}?charset=utf8'

    SQLALCHEMY_DATABASE_URI = DB_URI
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 不需要跟踪数据修改


    # 日志配置
    LOGGING_LEVEL = 'DEBUG'  # 默认日志级别
    LOGGING_FILE_DIR = 'logs/'  # 存放地址
    LOGGING_FILE_MAX_BYTES = 300*1024*1024  # 日志大小：300M
    LOGGING_FILE_BACKUP = 20  # 备份日志个数


    #  限流器采用Redis保存数据，默认是内存
    RATELIMIT_STORAGE_URL = 'redis://192.168.221.131:6379/0'  # redis地址
    # 限制策略：移动窗口：时间窗口会自动变化
    RATELIMIT_STRATEGY = 'moving-window'

    # redis数据库的连接地址，使用数据库1来存放缓存数据包括短信验证码
    REDIS_URL = 'redis://192.168.221.131:6379/1'


# 开发环境下的配置信息
class DevelopmentConfig(Config):
    DEBUG = True
    SQLALCHEMY_ECHO = True # 打印sql



# 生产环境中配置信息
class ProdectConfig(Config):
    pass

